#include <stdio.h>
#include <error.h>
#include <errno.h>

//#define DEBUG_PERROR
#define DEBUG_ERROR

#ifdef DEBUG_PERROR
void funtest(void)
{
    FILE *fp = fopen("nofile.txt","r");
    if( NULL == fp )
    {
        perror("funtest fail");
    }
    printf("funtest fun return\n");    
}
#endif

#ifdef DEBUG_ERROR
void funtest(void)
{
    FILE *fp = fopen("nofile.txt","r");
    if( NULL == fp )
    {
        error(1, errno, "Fail to open file");
    }
    printf("funtest fun return\n");    
}
#endif

int main(int argc, char const *argv[])
{
    funtest();
    printf("main fun return\n");
    return 0;
}

/*

函数 perror
    仅打印错误信息

函数 error
    打印错误信息
    直接退出程序

*/